/**
 * 0646. 第一个独特字符位置
 * 给出一个字符串。找到字符串中第一个不重复的字符然后返回它的下标。如果不存在这样的字符，返回 -1。
 * https://www.lintcode.com/problem/first-position-unique-character/my-submissions
 *
 * 样例
 * 样例 1:
 * 输入 : s = "lintcode"
 * 输出 : 0
 *
 * 样例 2:
 * 输入 : s = "lovelintcode"
 * 输出 : 2
 *
 * @author jeymingwu
 * @date 2019/9/30 16:11
 */
public class L0646_First_Position_Unique_Character {

    /**
     * @param s: a string
     * @return: it's index
     */
    public int firstUniqChar(String s) {
        // write your code here
        if (s.length() == 1) {
            return 1;
        }
        int[] nums = new int[128];
        for (int i = 0; i < s.length(); ++i) {
            nums[s.charAt(i)] ++;
        }
        for (int i = 0; i < s.length(); ++i) {
            if (nums[s.charAt(i)] == 1) {
                return i;
            }
        }
        return -1;
    }

}
